package com.kaifamiao.sorted;

import java.util.SortedMap;
import java.util.TreeMap;

/**
 * SortedMap表示有顺序的 Map集合
 * 1、SortedMap中所有元素按照 键(key) 进行 整体排序(总体排序)
 * 2、SortedMap中定义的方法
 *      K firstKey()
 *      K lastKey()
 *      SortedMap<K,V> subMap(K fromKey, K toKey)
 *      SortedMap<K,V> headMap(K toKey)
 *      SortedMap<K,V> tailMap(K toKey)
 */
public class SortedMapTest {

    public static void main(String[] args) {

        SortedMap<String,Integer> map = new TreeMap<>();
        map.put( "鱼香茄子", 14 );
        map.put( "鱼香肉丝", 14 );
        map.put( "麻婆豆腐", 10 );
        map.put( "优质牛肉面" , 16 );
        System.out.println( map );

        System.out.println( "优质牛肉面".compareTo( "鱼香茄子" ) );
        System.out.println( "鱼香肉丝".compareTo( "鱼香茄子" ) );
        System.out.println( "麻婆豆腐".compareTo( "鱼香茄子" ) );

        String first = map.firstKey();
        System.out.println( first );

        String last = map.lastKey();
        System.out.println( last );

        // 截取 [ fromKey, toKey ) 之间的 键值对 组成的集合
        SortedMap<String,Integer> sub = map.subMap( "鱼香肉丝" , "麻婆豆腐" );
        System.out.println( sub );
        // 截取 开头 到 toKey 之间的 键值对 组成的集合
        SortedMap<String,Integer> head = map.headMap( "鱼香茄子" );
        System.out.println( head );

        // 截取 fromKey 到 末尾 之间的 键值对 组成的集合
        SortedMap<String,Integer> tail = map.tailMap( "鱼香茄子" );
        System.out.println( tail );

        // 获取对 SortedMap中的键进行排序的比较器；如果使用键的自然顺序，则返回 null
        System.out.println( map.comparator() );

    }

}
